home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 3 / CD ACTUAL 3.iso / linux / incoming / jstools-.6v3 / jstools- / jstools-tk3.6v3.0 / lib / jentryemacs.tcl < prev    next >
Encoding:
Text File  |  1995-02-05  |  2.4 KB  |  94 lines

  1. # jentryemacs.tcl - support for Emacs Entry bindings
  2. # Copyright 1992-1994 by Jay Sekora.  All rights reserved, except 
  3. # that this file may be freely redistributed in whole or in part 
  4. # for non-profit, noncommercial use.
  5.  
  6. ######################################################################
  7. # j:eb:emacs_init - initialise info for Emacs Entry bindings
  8. ######################################################################
  9.  
  10. proc j:eb:emacs_init { e } {
  11.   global j_teb
  12.   set j_teb(cutbuffer) {}
  13.   set j_teb(dragscroll,txnd) 0
  14.   set j_teb(dragscroll,delay) 50
  15.   set j_teb(scanpaste_time) 0
  16.   set j_teb(scanpaste_paste) 1
  17.     
  18.   set j_teb(keymap,$e) emacs-normal
  19.   
  20.   # in tk4, we need to make sure tkTextBind is called _before_
  21.   #   j:tb:key_bind!
  22.   j:tk4 {tkEntryBind Enter}
  23.   
  24.   j:eb:key_bind $e
  25.   j:eb:mouse_bind $e
  26.   
  27.   j:ekb:mkmap Entry emacs-normal emacs-normal {
  28.     {Control-slash        j:eb:select_all}
  29.     {Control-backslash        j:eb:clear_selection}
  30.     
  31.     {Delete            j:ekb:delete_left}
  32.     {BackSpace            j:ekb:delete_left}
  33.     {Return            j:ekb:self_insert}
  34.     
  35.     {Left            j:ekb:left}
  36.     {Right            j:ekb:right}
  37.     
  38.     {Home            j:ekb:bol}
  39.     {End            j:ekb:eol}
  40.     
  41.     {Control-a            j:ekb:bol}
  42.     {Control-e            j:ekb:eol}
  43.     
  44.     {Control-b            j:ekb:left}
  45.     {Control-f            j:ekb:right}
  46.     
  47.     {Control-i            j:ekb:self_insert}
  48.     {Control-j            j:ekb:self_insert}
  49.     {Control-h            j:ekb:delete_left}
  50.     
  51.     {Control-d            j:ekb:delete_right}
  52.     {Control-w            j:ekb:kill_selection}
  53.     {Control-k            j:ekb:kill_eol}
  54.     
  55.     {Control-v            j:ekb:eol}
  56.     
  57.     {Control-q            j:ekb:new_mode emacs-literal}
  58.     {Escape            j:ekb:new_mode emacs-escape}
  59.     
  60.     {Control-DEFAULT        j:eb:no_op}
  61.     {DEFAULT            j:ekb:self_insert}
  62.     {Shift-DEFAULT        j:ekb:self_insert}
  63.   }
  64.   
  65.   j:ekb:mkmap Entry emacs-escape emacs-normal {
  66.     {b                j:ekb:word_left}
  67.     {f                j:ekb:word_right}
  68.     {Delete            j:ekb:delete_word_left}
  69.     {BackSpace            j:ekb:delete_word_left}
  70.     {d                j:ekb:delete_word_right}
  71.     {v                j:ekb:bol}
  72.     {less            j:ekb:bol}
  73.     {greater            j:ekb:eol}
  74.  
  75.     {Control-DEFAULT        j:eb:no_op}
  76.     {DEFAULT            j:eb:no_op}
  77.     {Shift-DEFAULT        j:eb:no_op}
  78.   }
  79.   
  80.   j:ekb:mkmap Entry emacs-literal emacs-normal {
  81.     {DEFAULT            j:ekb:self_insert}
  82.     {Shift-DEFAULT        j:ekb:self_insert}
  83.     {Control-DEFAULT        j:ekb:self_insert}
  84.     {Meta-DEFAULT        j:ekb:self_insert}
  85.   }
  86. }
  87.  
  88. # deprecated alias for backward compatibility:
  89.  
  90. proc j:eb:emacs_bind { W } {
  91.   j:eb:emacs_init $W
  92. }
  93.